package com.example.service;

import com.example.pojo.Article;
import com.example.pojo.PageBean;

public interface ArticleService {

    /**
     * 新增文章
     *
     * @param article 新的文章内容
     */
    void add(final Article article);

    /**
     * 条件分页列表查询
     *
     * @param pageNum    当前页码
     * @param pageSize   每条页数
     * @param categoryId 文章分类ID 非必须
     * @param state      发布状态    已发布|草稿     非必须
     * @return 文章列表
     */
    PageBean<Article> list(Integer pageNum, Integer pageSize,
                           final Integer categoryId, final String state);

    /**
     * 获取文章详情
     *
     * @param id 主键ID
     * @return 文章详情
     */
    Article findById(final Integer id);

    /**
     * 更新文章内容
     *
     * @param article 新的文章内容
     */
    void update(final Article article);

    /**
     * 删除文章
     *
     * @param id 需要删除文章的主键ID
     */
    void delete(final Integer id);
}
